TreeGridLoaded ({ /* JSONP header, to be possible to load from xxx_Jsonp data source */ 
   "Cfg" : { "id": "GanttBig", "SuppressCfg": "1"   },  // Base settings, suppresses saving configuration to cookies 
   "Cfg_2" : { "Size": "Low"   },  // Smaller style size, because of large chart 
   "Cfg_3" : { "NumberId": "1", "IdChars": "0123456789"   },  // Controls generation of new row ids 
   "Cfg_4" : { "NoFormatEscape": "1"   },  // You can use HTML code in formatting, set here because ValueSeparator and RangeSeparator contain HTML code 
   "Cfg_5" : { "Sort": "TASK,SECTION"   },  // Default sort is by Task and Section 
   "Cfg_6" : { "Group": "TASK"   },  // The grid is grouped by Task by default 
   "Cfg_7" : { "GroupRestoreSort": "1"   },  // Restores original sorting after ungroup 
   "Cfg_8" : { "CopyPasteTree": "2"   },  // When copying and pasting grouping row, it copies and pastes also all its visible children 
   "Cfg_9" : { "Undo": "1"   },  // Permits undo / redo changes by Ctrl+Z / Ctrl + Y 
   "Cfg_10" : { "ChildParts": "2"   },  // Switches on child parts 
   "Cfg_11" : { "ScrollLeftLap": "0"   },  // Permits saving left scroll to cookies 
   "Cfg_12" : { "DefaultDate": "1/1/2010"   },  // Default date in calendar for empty date 
   "Cfg_13" : { "MenuColumnsCount": "2"   },  // Displays column names in menu in two columns 
   "Cfg_14" : { "MidWidth": "295", "MinRightWidth": "200", "MinLeftWidth": "200", "RightWidth": "550"   },  // Sizes and scrolls for column sections 
   "Cfg_15" : { "Paging": "2", "PageLength": "5"   },  // Sets paging and presets page length 
   "Cfg_16" : { "MaxHeight": "1", "MinTagHeight": "400"   },  // Maximizes grid to the page without scrollbars 
   "Cfg_17" : { "LimitScroll": "23", "MinBodyRows": "5"   },   // Responsive design, for small windows sets NoVScroll and NoHScroll 
   "Cfg_18" : { "ExportHeights": "1"   },  // Does not calculate row heights on export, exports all rows with the same height 
   "Cfg_19" : { "CalendarsRepeatType": "Enum", "CalendarsRepeatEnum": "||Weekly|Daily", "CalendarsRepeatEnumKeys": "||w|d"   },  // Settings for Calendar list dialog, the Repeat column 
   "Cfg_20" : { "CalendarsValueType": "Enum", "CalendarsValueEnum": "|Not work|Exception|Lunch|Weekend|Holiday|Reserved1|Reserved2", "CalendarsValueEnumKeys": "||0|1|2|3|4|5", "CalendarsValueCaption": "Type"   },  // Settings for Calendar list dialog, the Value column 
   "Cfg_21" : { "ImportRows": "3"   },  // Permits importing rows data from exported xlsx, accepts only xlsx exported by this sample 
   "Cfg_22" : { "ExportType": "Outline,ForceBorder,HideFiltered,HideGroupCols,Hidden,Hide,FixedRows,FixedCols,TreeGrid,ColNames,RangeComment"   },  // Settings for xlsx export, support also for importing xlsx back 
   "Def" : [ 
      { "Name": "R", "CDef": ""   },  // The standard rows cannot have children 
      { "Name": "Group", "Calculated": "1", "CalcOrder": "SECTIONHtmlPostfix,START,END,DURATION,COMPLETE,PARTS1,PRICE"   },  // Grouping row is calculated to show summary for its children 
      { "Name": "Group", "Expanded": "1"   },  // Grouping row shows its children by default 
      { "Name": "Group", "EditCols": "Main"   },  // When user changes value in main column (N1 - Task), the value is copied also to the children 
      { "Name": "Group", "STARTFormula": "ganttstart()"   },  // Gets the first start date from its children, including milestones 
      { "Name": "Group", "ENDFormula": "ganttend()"   },  // Gets the last end date from its children, including milestones 
      { "Name": "Group", "DURATIONFormula": "END&&START?Grid.DiffGanttDate(END,START):''"   },  // Gets the last end date from its children, including milestones 
      { "Name": "Group", "COMPLETEFormula": "ganttpercent()"   },  // Calculates average task completion from its children 
      { "Name": "Group", "PARTS1Formula": "sumparts()", "PARTS1CanEdit": "0", "GANTTGanttClass1": "White"   },  // Merges all date ranges from its children 
      { "Name": "Group", "PRICEFormula": "sum()"   },  // Sums prices 
      { "Name": "Group", "CDef": "R"   },  // Grouping rows can contain standard rows as children 
      { "Name": "Group", "GANTTGanttClass": "Group", "GANTTGanttIcons": "1"   },  // Gantt setting specific for Group rows, changes colors and adds side icons 
      { "Name": "Group", "GANTTGanttSummary": "0"   },  // Row works as Gantt Summary, when moved, it moves its child tasks too 
      { "Name": "Group", "GANTTGanttEdit": "Main"   },  // Only main the bar can be edited to move all the summary children 
      { "Name": "Group", "STARTCanEdit": "1"   },  // Lets users to edit start date to move the Gantt Summary and its children 
      { "Name": "Group", "GroupMain": "TASK"   },  // Tree will be shown in Task column 
      { "Name": "Group", "CMaxChars": "100"   },  // Ensures setting returned value when grouped by Complete column 
      { "Name": "Group", "ParentCDef": "Group"   },  // When grouped by any column, new rows added to root will be these groups 
      { "Name": "Group", "CanFilter": "2"   },  // Hides the group when all its tasks are hidden by filter 
      { "Name": "Group", "idVisible": "0"   },  // Hides the automatically generated id 
      { "Name": "Group", "CanSelect": "0"   },  // Hides the panel Select icon 
      { "Name": "Group", "CALENDARVisible": "-1"   },  // Custom calendar has no sense for group tasks 
      
      { "Name": "Group", "SECTIONHtmlPostfixFormula": "' <em>('+count(4)+')</em>'"   },  // Shows the count of children as green suffix 

      { "Name": "GroupTask", "GroupCols": "|TASK|COMPLETE,TASK", "Group": "1", "Def": "Group", "GroupMain": "SECTION"   },  // When grouping by Task, shows tree in Section column 
      { "Name": "GroupTask", "ParentCDef": "GroupTask"   }   // When grouped by task, new rows added to root will be of these groups 
   ], 
   "LeftCols" : [ 
      { "Name": "id", "Type": "Int", "Width": "42", "CanEdit": "0"   },  // id / row number column 
      { "Name": "TASK", "Width": "74", "Type": "Text"   },  // Task column 
      { "Name": "SECTION", "Width": "50", "GroupWidth": "124", "Type": "Text"   }   // Section column 
   ], 
   "Cols" : [ 
      { "Name": "START", "Width": "80", "Type": "Date", "Format": "[y!=2010]yyyy, MMM dd;MMM dd"   },  // Start date column, 1st plan 
      { "Name": "END", "Width": "86", "Type": "Date", "Format": "[y!=2010]yyyy, MMM dd;MMM dd", "CanEmpty": "1"   },  // End date column, 1st plan 
      { "Name": "DURATION", "Width": "50", "Type": "Text", "Align": "Right", "MenuName": "Duration"   },  // Duration column, 1st plan, does not have data, calculated from START and END 
      { "Name": "COMPLETE", "Width": "56", "Type": "Float", "EditMask": "^\\d*[\\d\\.\\,]?\\d*$", "Format": "##.##\\%;;0\\%", "MenuName": "Complete"   },  // Complete column, 1st plan 
      { "Name": "TEXT", "Visible": "0", "Width": "150"   },  // Main bar text, 1st plan 

      { "Name": "DESCENDANTS", "Width": "66", "Type": "Text", "Range": "1", "MenuName": "Descendants"   }, // Descendants, ids of next tasks 
      { "Name": "ANCESTORS", "Width": "72", "Type": "Text", "Range": "1", "MenuName": "Ancestors"   }, // Ancestors, ids of previous tasks 
      { "Name": "SLACK", "Width": "54", "Type": "Float", "CanEmpty": "1", "CanEdit": "0", "MenuName": "Slack"   },  // Slack for critical path, automatically filled 

      { "Name": "CALENDAR", "Visible": "0", "Width": "85", "Type": "Select", "OnClickSideDefaults": "Grid.ShowGanttCalendars(Row,Col)", "OnEnter": "Grid.ShowGanttCalendars(Row,Col)"   },  // Custom calendar / excluded dates 

      { "Name": "RESOURCES", "Width": "130", "Type": "Text"   },  // Resources column 
      { "Name": "PRICE", "Width": "65", "Type": "Float", "Format": ",0.00", "Formula": "Grid.GetGanttPrice(Row,'GANTT')"   },  // Task price column 

      { "Name": "PARTS1", "Width": "180", "Type": "Date", "Range": "1", "Button": "", "Format": "MMM dd"   },  // Main bar Parts, 2nd plan 
      { "Name": "TEXT1", "Visible": "0", "Width": "85"   },  // Main bar text, 2nd plan 

      { "Name": "FLAGS", "Visible": "0", "Width": "90", "Type": "Date", "Range": "1", "Button": "", "Format": "MMM dd, '<i>'HH'</i>'"   },  // Flag column 
      { "Name": "FLAGSTEXT", "Visible": "0", "Width": "72", "Type": "Text", "Range": "1"   },  // Flag info column 

      { "Name": "MINSTART", "Visible": "0", "Width": "96", "Type": "Date", "Format": "[y!=2010]yyyy, MMM dd;MMM dd"   },  // Min Start date column 
      { "Name": "MAXSTART", "Visible": "0", "Width": "96", "Type": "Date", "Format": "[y!=2010]yyyy, MMM dd;MMM dd"   },  // Max Start date column 
      { "Name": "MINEND", "Visible": "0", "Width": "96", "Type": "Date", "Format": "[y!=2010]yyyy, MMM dd;MMM dd"   },  // Min End date column 
      { "Name": "MAXEND", "Visible": "0", "Width": "96", "Type": "Date", "Format": "[y!=2010]yyyy, MMM dd;MMM dd"   }   // Max End date column 
      
   ], 

   // Column captions and header tooltips 
   "Header" : { "MenuName": "Header", 
      "id": "ID", "idTip": "id - Task unique idenfication<br>Not used for automatically created grouped tasks<br>Used especially to assign dependencies to tasks and to identify tasks when saving changes to server", 
      "TASK": "Task", "TASKTip": "Task name, the same for more rows, any custom string", 
      "SECTION": "Section", "SECTIONTip": "Name of individual task part, any custom string<br>When grouped, it shows task name in parent and the section name in child row", 
      "START": "Start", "STARTTip": "Start date (and time) of the task, first plan", 
      "END": "End", "ENDTip": "End date (and time) of the task, first plan", 
      "COMPLETE": "Com<br>plete", "COMPLETETip": "Percentage completion of the task, first plan<b>By default only not started tasks (0%) can be scheduled", 
      "DURATION": "Dura<br>tion", "DURATIONTip": "Duration in hours of the task, first plan", 
      "TEXT": "Information", "TEXTTip": "Task custom information, here shown in task tip, first plan", 
      "PARTS1": "Parts 1", "PARTS1Tip": "Start and End dates of individual parts, if the task is discrete, second plan", 
      "TEXT1": "Information 1", "TEXT1Tip": "Task custom information, here shown in task tip, second plan", 
      "DESCENDANTS": "Descen<br>dants", "DESCENDANTSTip": "(Successors) Dependencies to next tasks, their ids, optionally with lag, span and color, here used for task first plan", 
      "ANCESTORS": "Ances<br>tors", "ANCESTORSTip": "(Predecessors) Dependencies from previous tasks, their ids, optionally with lag, span and color, here used for task first plan", 
      "SLACK": "Slack<br>(critical path)", "SLACKTip": "Calculated value for task first plan, in hours<br>How much the task can be delayed to not affect the project end date (or start date)<br>If it is 0, the task is on critical path<br>If it is negative, the task is incorrect", 
      "CALENDAR": "Calendar", "CALENDARTip": "Custom calendar for all task plans and other Gantt objects.<br>Defines excluded dates ingored in Gantt calculations", 
      "RESOURCES": "Resources", "RESOURCESTip": "Resources assigned to task, first plan<b>Used to calculate task price and to show project resources usage in the grid bottom", 
      "PRICE": "Price", "PRICETip": "Price of the task, first plan. Calculated from the resources assigned to task and the task duration", 
      "MINSTART": "Min start", "MINSTARTTip": "Early start constraint, here used for the task first plan", 
      "MAXSTART": "Max start", "MAXSTARTTip": "Late start constraint, here used for the task first plan", 
      "MINEND": "Min end", "MINENDTip": "Early end constraint, here used for the task first plan", 
      "MAXEND": "Max end", "MAXENDTip": "Late end constraint, here used for the task first plan", 
      "FLAGS": "Flags", "FLAGSTip": "Icon on the selected date, for custom information for the date", 
      "FLAGSTEXT": "Flag Info", "FLAGSTEXTTip": "Custom information for the flag date", 
      "GANTT": "Gantt"   }, 
   "Header_2" : { "SortIcons": "2"   },  // Hides unused sort icons    
   "Header_3" : { "NoEscape": "1"   },  // The header cells contains HTML code    

   "RightCols" : [ 
      // Gantt chart column 

      // Basic settings 
      { "Name": "GANTT", "Type": "Gantt", "MenuName": "Gantt chart"   },  // Basic setting, type and name in columns menu 
      { "Name": "GANTT", "GanttCount": "2", "GanttTask": "Main"   },  // Defines two main bar plans for this chart, but only the first one will be Gantt task with dependencies, resources and percentage completion 

      // Data settings 
      { "Name": "GANTT", "GanttDataUnits": "d"   },  // All lengths in input data XML (like Dependency lags) are in days 
      { "Name": "GANTT", "GanttDataModifiers": "m:1/60,h:1,d:8,w:40"   },  // Modifiers that can be used in Dependency lag values to multiply the value to get hour count 
      { "Name": "GANTT", "GanttLastUnit": "d"   },  // All the end dates are set as the last unit (day) 

      // First main bar plan definition 
      { "Name": "GANTT", "GanttStart": "START", "GanttEnd": "END", "GanttDuration": "DURATION", "GanttComplete": "COMPLETE", "GanttText": "TEXT"   },  // Defines source columns for Main tasks - first main bar plan 
      { "Name": "GANTT", "GanttResources": "RESOURCES"   },  // Resources assigned to the first main bar plan 
      { "Name": "GANTT", "GanttHtmlRight": "$<i>*PRICE*</i> *RESOURCES*"   },  // Formats the text next to main task 

      // Second main bar plan definition 
      { "Name": "GANTT", "GanttParts1": "PARTS1", "GanttText1": "TEXT1"   },  // Defined source columns for the second main bar plan 
      { "Name": "GANTT", "GanttTop1": "9", "GanttHeight1": "2"   },  // Vertical position and height of the second main bar plan 
      { "Name": "GANTT", "GanttClass1": "Yellow"   },  // The second main bar plan has set yellow background 
      { "Name": "GANTT", "GanttMilestones1": "0"   },  // Restricts milestones for the second main bar plan 

      // Flags definition 
      { "Name": "GANTT", "GanttFlags": "FLAGS", "GanttFlagTexts": "FLAGSTEXT", "GanttFlagsMove": "2"   },  // Defined source columns for Flags, can move flags between rows 

      // Vertical lines definition 
      { "Name": "GANTT", "GanttLines": "3#1/20/2010#Navy2"   },  // Defines one vertical line for simulated actual date 
      { "Name": "GANTT", "GanttLine0Tip": "Actual date for this project is at *Start*"   },  // Tip for the simulated actual date 

      // Settings for scheduling 
      { "Name": "GANTT", "GanttDescendants": "DESCENDANTS", "GanttAncestors": "ANCESTORS"   },  // Defines source columns for Dependencies 
      { "Name": "GANTT", "GanttMinStart": "MINSTART", "GanttMaxStart": "MAXSTART", "GanttMinEnd": "MINEND", "GanttMaxEnd": "MAXEND"   },  // Start and end date constraints 
      { "Name": "GANTT", "GanttSlack": "SLACK"   },  // Where will be filled information for critical path 
      { "Name": "GANTT", "GanttAssignDependencies": "3"   },  // Assigns different colors to dependencies to the same box and its edge 
      { "Name": "GANTT", "GanttAllDependencies": "3"   },  // Removes dependency lines if both tasks are hidden 
      { "Name": "GANTT", "GanttStrict": "1"   },  // Forces first tasks to start on base date and all other to start immediately when possible 
      { "Name": "GANTT", "GanttDirection": "0"   },  // Schedules tasks from start 
      { "Name": "GANTT", "GanttCorrectDependencies": "0"   },  // Ignore dependencies after main task move or resize or dependency change 
      { "Name": "GANTT", "GanttCorrectDependenciesFixed": "1"   },  // Cannot move the changed task when automatically correcting dependencies 
      { "Name": "GANTT", "GanttCheckExclude": "2"   },  // Ask to move task if it starts on holiday after resize or move 
      { "Name": "GANTT", "GanttBase": "1/4/2010"   },  // Base project date, all the project should start after this date 
      { "Name": "GANTT", "GanttFinish": ""   },  // Project end date, all the tasks should end before this date. Not defined by default here 
      { "Name": "GANTT", "GanttBaseProof": "1"   },  // The tasks cannot be moved or created before GanttBase 
      { "Name": "GANTT", "GanttFinishProof": "1"   },  // The tasks cannot be moved or created after GanttFinish, if defined 
      { "Name": "GANTT", "GanttBaseTip": "Project start set at *Start*", "GanttBaseAutoTip": "Project starts at *Start*"   },  // Tip for GanttBase line, if defined and if not defined 
      { "Name": "GANTT", "GanttFinishTip": "Project finish set at *Start*", "GanttFinishAutoTip": "Project finishes at *Start*"   },  // Tip for GanttFinish line, if defined and if not defined 
      { "Name": "GANTT", "GanttLineTipDateFormat": "<b>dddddd MMMM</b>"   },  // Sets date format for all lines tips, for GanttBase and GanttFinish 

      // Resources 
      { "Name": "GANTT", "GanttResourcesAssign": "1"   },  // Shows resources menu with checkboxes 

      // Tooltips 
      { "Name": "GANTT", "GanttTip": "*id*. *TASK*, *SECTION* <em>(first bar)</em><div style='padding-top:5px;padding-bottom:5px;font-weight:bold;'>*Start* - *End*</div>*Duration* hours, *COMPLETE* completed<div style='padding-top:5px;'><b>*SLACK*</b> hours reserve</div><div style='padding-top:5px;'>*Text*</div>"   },  // Specifies tooltip shown for first main bar 
      { "Name": "GANTT", "GanttMilestoneTip": "*id*. *TASK*, *SECTION* <em>(milestone)</em><div style='padding-top:5px;font-weight:bold;'>*Start*</div><div style='padding-top:5px;'><b>*SLACK*</b> hours reserve</div><div style='padding-top:5px;'>*Text*</div>"   },  // Specifies tooltip shown for first main plan milestone
      { "Name": "GANTT", "GanttTip1": "*id*. *TASK*, *SECTION* <em>(*Index*. second bar)</em><div style='padding-top:5px;padding-bottom:5px;font-weight:bold;'>*Start* - *End*</div>*Duration* hours<div style='padding-top:5px;'>*Text*</div>"   },  // Specifies tooltip shown for second main bar 
      { "Name": "GANTT", "GanttFlagsTip": "*Start* - *Text*"   },  // Specifies tooltip shown for flags 
      { "Name": "GANTT", "GanttDependencyTip": "From: <b>*From*</b>, *Start*<br>To: <b>*To*</b>, *End*<br>Type: <b>*Type*</b><br>Lag: <b>*Lag*</b><br>Float: <b>*Float*</b>", "GanttDependencyTipDateFormat": "dddddd MMMM"   },  // Specifies tooltip shown for dependency line 
      
      // Exclude settings 
      { "Name": "GANTT", "GanttCalendar": ""   },  // Column with custom calendars, by default is turned off 
      { "Name": "GANTT", "GanttExclude": "Weekends"   },  // Global calendar - the excluded dates are not used for Gantt calculations and behaves like they don't exist at all 
      { "Name": "GANTT", "GanttHideExclude": "0"   },  // By default are the Excluded dates in global calendar shown in chart, it can be changed by a user 
      { "Name": "GANTT", "GanttAvailabilityExclude": "2"   },  // The resources chart is rounded to the excluded dates 

      // Horizontal Gantt paging settings 
      { "Name": "GANTT", "GanttPaging": "1"   },  // Permits Gantt paging 
      { "Name": "GANTT", "GanttHeaderPaging2": "1", "GanttHeaderPaging3": "1"   },  // The second and third headers will be paged, the first header will be shown always the whole 

      // Basic zoom settings 
      { "Name": "GANTT", "GanttZoom": "weeks and days"   },  // Predefine zoom level name 
      { "Name": "GANTT", "GanttChartMinStart": "1/1/1990", "GanttChartMaxEnd": "1/1/2040"   },  // Limit dates for input and display 
      { "Name": "GANTT", "GanttLeft": "2", "GanttRight": "0"   },  // At least two units will be let empty on left side (no Exclude applied here) 
      { "Name": "GANTT", "MinWidth": "450"   },  // Minimal width of the column will be 450 pixels 
      { "Name": "GANTT", "GanttBackground": "M#1/1/2008#5"   }   // Highlights these dates in chart (month ends), some zoom levels change this setting 
   ], 

   // Gantt Zoom defines zoom levels definition 
   // The individual levels predefine various Gantt zoom settings 
   // GanttUnits and GanttWidth specify the zooming size, to GanttUnits are all the dates rounded for display and drag 
   // GanttChartRound specifies rounding of first and last date in the chart 
   // Some zoom levels changes GanttBackground to mark different units 
   // GanttHeader1 specifies the dates shown in the first line in Gantt header 
   // GanttHeader2 and possibly also 3,4,5 specify next lines in Gantt header 
   // The ...Ex values are chosen when Exclude is hidden, they are appropriate only for excluded weekends 

   "Zoom" : [ 

      // Big levels - without GanttSize and right side pager 
      { "Name": "years and halves", "GanttUnits": "M6", "GanttChartRound": "y", "GanttWidth": "22", "GanttWidthEx": "30.8", "GanttPrintRound": "y", "GanttBackground": ";y#1/1/2008", 
                                       "GanttHeader1": "y#yyyy", "GanttHeaderStyle1": "4", "GanttHeader3": "M6#MMMMMM"   }, 
      { "Name": "years and quarters", "GanttUnits": "M3", "GanttChartRound": "y", "GanttWidth": "30", "GanttWidthEx": "42", "GanttPrintRound": "y", "GanttBackground": ";y#1/1/2008", 
                                       "GanttHeader1": "y#yyyy", "GanttHeader3": "M3#MMMMM"   }, 
      { "Name": "halves and months", "GanttUnits": "M", "GanttChartRound": "y", "GanttWidth": "25", "GanttWidthEx": "35", "GanttPrintRound": "M6", "GanttBackground": ";M6#1/1/2008", 
                                       "GanttHeader1": "M6#MMMMMM. yyyy", "GanttHeader3": "M#MM"   }, 
      { "Name": "quarters and months", "GanttUnits": "M", "GanttChartRound": "M6", "GanttWidth": "35", "GanttWidthEx": "49", "GanttPrintRound": "M3", "GanttBackground": ";M3#1/1/2008", 
                                       "GanttHeader1": "M3#MMMMM. yyyy", "GanttHeader2": "M#MMM"   }, 
      { "Name": "months and weeks", "GanttUnits": "d", "GanttChartRound": "M", "GanttWidth": "4", "GanttWidthEx": "5.6", "GanttPrintRound": "M", "GanttBackground": ";M#1/1/2008", 
                                       "GanttHeader1": "M#MMM yyyy", "GanttHeader2": "w#ddddddd", "GanttHeader3": "w#d."   }, 
      { "Name": "months and days", "GanttUnits": "d", "GanttChartRound": "M", "GanttWidth": "12", "GanttWidthEx": "16.8", "GanttPrintRound": "M", 
                                       "GanttHeader1": "M#MMMM yyyy", "GanttHeader5": "d#DDDDDD'<br/>'DDDDDDD"   }, 
      { "Name": "weeks and days", "GanttUnits": "d", "GanttChartRound": "w", "GanttWidth": "25", "GanttWidthEx": "35", "GanttPrintRound": "w", 
                                       "GanttHeader1": "w#'<i>/'ddddddd'/</i>' MMMM yyyy", "GanttHeader2": "d#%d", "GanttHeader3": "d#ddddd"   }, 
      { "Name": "days and quarters", "GanttUnits": "h", "GanttChartRound": "w", "GanttWidth": "5", "GanttPrintRound": "d", 
                                       "GanttHeader1": "d#dd MMM yyyy", "GanttHeader2": "d#dddd", "GanttHeader3": "h6#HH", "GanttHeaderRound3": "1"   }, 
      { "Name": "days and hours", "GanttUnits": "h", "GanttChartRound": "d", "GanttWidth": "12", "GanttPrintRound": "d", 
                                       "GanttHeader1": "d#dddd dddddd MMMM yyyy", "GanttHeader5": "h#HHHH'<br/>'HHHHH"   }, 

      // Small levels - with GanttSize set and right side pager 
      { "Name": "halves and hours", "GanttUnits": "h", "GanttChartRound": "d", "GanttWidth": "24", "GanttPrintRound": "h12", "GanttBackground": "w#1/6/2008#5", 
                                       "GanttHeader1": "h12#ddd dddddd MMMM yyyy <b>tt</b>", "GanttHeader1Ex": "d#dddd dddddd MMMM yyyy", "GanttHeader3": "h#HH", 
                                       "GanttSize": "w", "GanttSizeLeft": "24", "GanttSizeRight": "24", 
                                       "PagerPageSize": "w", "PagerChartSize": "M6", "PagerFormat": "Week ddddddd", "PagerTipFormat": "M/d; - M/d", "PagerCaptionFormat": "MMMMMM. yyyy"   }, 
      { "Name": "hours and quarters", "GanttUnits": "h", "GanttChartRound": "d", "GanttWidth": "90", "GanttPrintRound": "h3", "GanttBackground": "w#1/5/2008~1/7/2008; h#00:00", 
                                       "GanttHeader1": "h3#dddd dddddd MMMM yyyy", "GanttHeader2": "h#HH 'hour'", "GanttHeader3": "m15#mm", 
                                       "GanttSize": "d", "GanttSizeLeft": "3", "GanttSizeRight": "3", 
                                       "PagerPageSize": "d", "PagerChartSize": "M", "PagerFormat": "dddddd", "PagerTipFormat": "M/d", "PagerCaptionFormat": "MMMM"   }, 
      { "Name": "hours and 5 minutes", "GanttUnits": "m5", "GanttChartRound": "h", "GanttWidth": "25", "GanttPrintRound": "h", "GanttBackground": "w#1/5/2008~1/7/2008; h#00:00", 
                                       "GanttHeader1": "h#dddd dddddd MMMM yyyy", "GanttHeader2": "h#HH 'hour'", "GanttHeader3": "m5#mm", 
                                       "GanttSize": "d", "GanttSizeLeft": "12", "GanttSizeRight": "12", 
                                       "PagerPageSize": "d", "PagerChartSize": "M", "PagerFormat": "dddddd", "PagerTipFormat": "M/d", "PagerCaptionFormat": "MMMM"   }, 
      { "Name": "hours and minutes", "GanttUnits": "m", "GanttChartRound": "h", "GanttWidth": "10", "GanttPrintRound": "h", "GanttBackground": "m15#00:00; h#00:00", 
                                       "GanttHeader1": "h#dddd dddddd MMMM yyyy, '<b>'HH 'hour</b>'", "GanttHeader5": "m#mmmm'<br/>'mmmmm", 
                                       "GanttSize": "h6", "GanttSizeLeft": "60", "GanttSizeRight": "60", 
                                       "PagerPageSize": "h", "PagerChartSize": "d", "PagerFormat": "HH:00", "PagerTipFormat": "M/d HH:00", "PagerCaptionFormat": "dddddd MMM<br>yyyy"   }, 
      { "Name": "halves and minutes", "GanttUnits": "m", "GanttChartRound": "h", "GanttWidth": "15", "GanttPrintRound": "m30", "GanttBackground": "m15#00:00; h#00:00", 
                                       "GanttHeader1": "m30#dddd dddddd MMMM yyyy, '<b>'HH:mm '</b>'", "GanttHeader5": "m#mmmm'<br/>'mmmmm", 
                                       "GanttSize": "h3", "GanttSizeLeft": "30", "GanttSizeRight": "30", 
                                       "PagerPageSize": "h", "PagerChartSize": "d", "PagerFormat": "HH:00", "PagerTipFormat": "M/d HH:00", "PagerCaptionFormat": "dddddd MMM<br>yyyy"   }, 
      { "Name": "quarters and minutes", "GanttUnits": "m", "GanttChartRound": "h", "GanttWidth": "25", "GanttPrintRound": "m15", "GanttBackground": "m15#00:00; h#00:00", 
                                       "GanttHeader1": "m15#dddd dddddd MMMM yyyy, '<b>'HH:mm '</b>'", "GanttHeader3": "m#mm", 
                                       "GanttSize": "h2", "GanttSizeLeft": "15", "GanttSizeRight": "15", 
                                       "PagerPageSize": "h", "PagerChartSize": "d", "PagerFormat": "HH:00", "PagerTipFormat": "M/d HH:00", "PagerCaptionFormat": "dddddd MMM<br>yyyy"   }, 
      { "Name": "5 minutes and minutes", "GanttUnits": "m", "GanttChartRound": "m15", "GanttWidth": "45", "GanttPrintRound": "m5", "GanttBackground": "m5#00:00; h#00:00", 
                                       "GanttHeader1": "m5#ddd d MMM yyyy, '<b>'HH:mm'</b>'", "GanttHeader3": "m#mm", 
                                       "GanttSize": "h", "GanttSizeLeft": "5", "GanttSizeRight": "5", 
                                       "PagerPageSize": "m15", "PagerChartSize": "h6", "PagerFormat": "HH:mm", "PagerTipFormat": "M/d HH:mm", "PagerCaptionFormat": "dddddd MMM<br>yyyy"   }, 
      { "Name": "minutes and 15 seconds", "GanttUnits": "s15", "GanttChartRound": "m15", "GanttWidth": "22", "GanttPrintRound": "m2", "GanttBackground": "m#00:00; h#00:00", 
                                       "GanttHeader1": "m2#ddd d MMM yyyy", "GanttHeaderStyle1": "2", "GanttHeader2": "m#HH:mm", "GanttHeaderStyle2": "1", "GanttHeader3": "s15#ss", 
                                       "GanttSize": "m30", "GanttSizeLeft": "8", "GanttSizeRight": "8", 
                                       "PagerPageSize": "m5", "PagerChartSize": "h2", "PagerFormat": "HH:mm", "PagerTipFormat": "M/d HH:mm", "PagerCaptionFormat": "dddddd MMM<br>yyyy"   }, 
      { "Name": "minutes and 5 seconds", "GanttUnits": "s5", "GanttChartRound": "m15", "GanttWidth": "22", "GanttPrintRound": "m", "GanttBackground": "m#00:00; h#00:00", 
                                       "GanttHeader1": "m#dddd dddddd MMMM yyyy", "GanttHeaderStyle1": "2", "GanttHeader2": "m#HH:mm", "GanttHeaderStyle2": "1", "GanttHeader3": "s5#ss", 
                                       "GanttSize": "m15", "GanttSizeLeft": "12", "GanttSizeRight": "12", 
                                       "PagerPageSize": "m5", "PagerChartSize": "h2", "PagerFormat": "HH:mm", "PagerTipFormat": "M/d HH:mm", "PagerCaptionFormat": "dddddd MMM<br>yyyy"   }, 
      { "Name": "minutes and seconds", "GanttUnits": "s", "GanttChartRound": "m5", "GanttWidth": "10", "GanttPrintRound": "m", "GanttBackground": "s15#00:00; m#00:00", 
                                       "GanttHeader1": "m#dddd dddddd MMMM yyyy, '<b>'HH:mm '</b>minute'", "GanttHeader5": "s#ssss'<br/>'sssss", 
                                       "GanttSize": "m5", "GanttSizeLeft": "60", "GanttSizeRight": "60", 
                                       "PagerPageSize": "m", "PagerChartSize": "m30", "PagerFormat": "HH:mm", "PagerTipFormat": "M/d HH:mm", "PagerCaptionFormat": "dddddd MMM<br>yyyy"   }, 
      { "Name": "halves and seconds", "GanttUnits": "s", "GanttChartRound": "m5", "GanttWidth": "15", "GanttPrintRound": "s30", "GanttBackground": "s15#00:00; m#00:00", 
                                       "GanttHeader1": "s30#dddd dddddd MMMM yyyy, '<b>'HH:mm '</b>half minute'", "GanttHeader5": "s#ssss'<br/>'sssss", 
                                       "GanttSize": "m2", "GanttSizeLeft": "15", "GanttSizeRight": "15", 
                                       "PagerPageSize": "m", "PagerChartSize": "m30", "PagerFormat": "HH:mm", "PagerTipFormat": "M/d HH:mm", "PagerCaptionFormat": "dddddd MMM<br>yyyy"   }, 
      { "Name": "quarters and seconds", "GanttUnits": "s", "GanttChartRound": "m", "GanttWidth": "22", "GanttPrintRound": "s15", "GanttBackground": "s15#00:00; m#00:00", 
                                       "GanttHeader1": "s15#ddd dddddd MMMM yyyy, '<b>'HH:mm'</b> quarter minute'", "GanttHeader3": "s#ss", 
                                       "GanttSize": "m2", "GanttSizeLeft": "15", "GanttSizeRight": "15", 
                                       "PagerPageSize": "m", "PagerChartSize": "m30", "PagerFormat": "HH:mm", "PagerTipFormat": "M/d HH:mm", "PagerCaptionFormat": "dddddd MMM<br>yyyy"   }, 
      { "Name": "5 seconds and seconds", "GanttUnits": "s", "GanttChartRound": "s15", "GanttWidth": "45", "GanttBackground": "s5#00:00; m#00:00", 
                                       "GanttHeader1": "s5#ddd d MMM yyyy, '<b>'HH:mm'</b> ...'", "GanttHeader3": "s#ss", 
                                       "GanttSize": "m", "GanttSizeLeft": "5", "GanttSizeRight": "5", 
                                       "PagerPageSize": "m", "PagerChartSize": "m30", "PagerFormat": "HH:mm", "PagerTipFormat": "M/d HH:mm", "PagerCaptionFormat": "dddddd MMM<br>yyyy"   }, 
      { "Name": "seconds and 100 ms", "GanttUnits": "ms100", "GanttChartRound": "s2", "GanttWidth": "11", "GanttPrintRound": "s2", "GanttBackground": "s#00:00; m#00:00", 
                                       "GanttHeader1": "s2#dddd dddddd MMMM yyyy", "GanttHeaderStyle1": "2", "GanttHeader2": "s#HH:mm:ss", "GanttHeaderStyle2": "1", "GanttHeader3": "ms100#%f", 
                                       "GanttSize": "s15", "GanttSizeLeft": "20", "GanttSizeRight": "20", 
                                       "PagerPageSize": "s5", "PagerChartSize": "m2", "PagerFormat": "HH:mm:ss", "PagerTipFormat": "M/d HH:mm:ss", "PagerCaptionFormat": "dddddd MMM<br>yyyy"   }, 
      { "Name": "seconds and 100 ms 2", "GanttUnits": "ms100", "GanttChartRound": "s", "GanttWidth": "75", "GanttPrintRound": "s", "GanttBackground": "s#00:00; m#00:00", 
                                       "GanttHeader1": "s#dddd dddddd MMMM yyyy", "GanttHeader3": "ms100#HH:mm:ss.'<b>'f'</b>'", 
                                       "GanttSize": "s5", "GanttSizeLeft": "10", "GanttSizeRight": "10", 
                                       "PagerPageSize": "s5", "PagerChartSize": "m2", "PagerFormat": "HH:mm:ss", "PagerTipFormat": "M/d HH:mm:ss", "PagerCaptionFormat": "dddddd MMM<br>yyyy"   }, 
      { "Name": "100 ms and 10 ms", "GanttUnits": "ms10", "GanttChartRound": "ms100", "GanttWidth": "12", "GanttPrintRound": "ms100", "GanttBackground": "ms100#00:00; s#00:00", 
                                       "GanttHeader1": "ms100#ddd d MMM yyyy", "GanttHeaderStyle1": "2", "GanttHeader2": "ms100#HH:mm:ss.'<b>'f'</b>'", "GanttHeaderStyle2": "1", "GanttHeader3": "ms10#ffff", 
                                       "GanttSize": "s", "GanttSizeLeft": "10", "GanttSizeRight": "10", 
                                       "PagerPageSize": "s", "PagerChartSize": "s30", "PagerFormat": "HH:mm:ss", "PagerTipFormat": "M/d HH:mm:ss", "PagerCaptionFormat": "dddddd MMM<br>yyyy"   }, 
      { "Name": "100 ms and 10 ms 2", "GanttUnits": "ms10", "GanttChartRound": "ms100", "GanttWidth": "80", "GanttPrintRound": "ms100", "GanttBackground": "ms100#00:00; s#00:00", 
                                       "GanttHeader1": "ms100#dddd dddddd MMMM yyyy", "GanttHeader3": "ms10#HH:mm:ss.'<b>'ff'</b>'", 
                                       "GanttSize": "s", "GanttSizeLeft": "10", "GanttSizeRight": "10", 
                                       "PagerPageSize": "s", "PagerChartSize": "s30", "PagerFormat": "HH:mm:ss", "PagerTipFormat": "M/d HH:mm:ss", "PagerCaptionFormat": "dddddd MMM<br>yyyy"   }, 
      { "Name": "10 ms and ms", "GanttUnits": "ms", "GanttChartRound": "ms10", "GanttWidth": "14", "GanttPrintRound": "ms10", "GanttBackground": "ms10#00:00; ms100#00:00", 
                                       "GanttHeader1": "ms10#ddd d MMM yyyy", "GanttHeaderStyle1": "2", "GanttHeader2": "ms10#HH:mm:ss.'<b>'ff'</b>'", "GanttHeaderStyle2": "1", "GanttHeader3": "ms#fffff", 
                                       "GanttSize": "ms100", "GanttSizeLeft": "10", "GanttSizeRight": "10", 
                                       "PagerPageSize": "ms100", "PagerChartSize": "s2", "PagerFormat": "HH:mm:ss.fff", "PagerTipFormat": "M/d HH:mm:ss.fff", "PagerCaptionFormat": "dddddd MMM<br>yyyy"   }, 
      { "Name": "10 ms and ms 2", "GanttUnits": "ms", "GanttChartRound": "ms10", "GanttWidth": "100", "GanttPrintRound": "ms10", "GanttBackground": "ms10#00:00; ms100#00:00", 
                                       "GanttHeader1": "ms10#dddd dddddd MMMM yyyy", "GanttHeader3": "ms#HH:mm:ss.'<b>'fff'</b>'", 
                                       "GanttSize": "ms100", "GanttSizeLeft": "10", "GanttSizeRight": "10", 
                                       "PagerPageSize": "ms100", "PagerChartSize": "s2", "PagerFormat": "HH:mm:ss.fff", "PagerTipFormat": "M/d HH:mm:ss.fff", "PagerCaptionFormat": "dddddd MMM<br>yyyy"   }, 
      { "Name": "10 ms and ms 3", "GanttUnits": "ms", "GanttChartRound": "ms10", "GanttWidth": "220", "GanttPrintRound": "ms", "GanttBackground": "ms10#00:00; ms100#00:00", 
                                       "GanttHeader1": "ms#dddd dddddd MMMM yyyy", "GanttHeaderStyle1": "2", "GanttHeader2": "ms#HH:mm:ss.'<b>'fff'</b>'", "GanttHeaderStyle2": "1", 
                                       "GanttSize": "ms10", "GanttSizeLeft": "1", "GanttSizeRight": "1", 
                                       "PagerPageSize": "ms10", "PagerChartSize": "ms100", "PagerFormat": "HH:mm:ss.fff", "PagerTipFormat": "M/d HH:mm:ss.fff", "PagerCaptionFormat": "dddddd MMM<br>yyyy"   }  
   ], 

   // Defines all calendars (excluded dates) available in grid 
   "Calendars" : [ 
      { "Name": "Weekends", "Exclude": "w#1/5/2008~1/7/2008#2;"   }, 
      { "Name": "Work hours", "Exclude": "d#18:00~9:00; d#13:00~14:00#1; w#1/5/2008~1/7/2008#2;"   }, 
      { "Name": "24 hours", "Exclude": ""   }, 
      { "Name": "Night shift", "Exclude": "d#8:00~23:00; d#3:00~4:00#1; w#1/5/2008 8:00~1/7/2008 8:00#2;"   }  
   ], 

   "Solid" : [ 

      // Defines the first top toolbar with combos to choose grouping, zoom and calendars 
      { "Kind":"Group", "id": "Group", "Space": "0", "Panel": "0", "Cells": "List,Zoom,Ex,HidEx,Cal", "Recalc": "-1", 
        
         "ListLeft": "5", 
         "ListHtmlPrefix": "Group by <b>", "ListHtmlPostfix": "</b>", 
  			"List": "|none|Task|Complete Task|Complete|Start|End", 
         "Cols": "||TASK|COMPLETE,TASK|COMPLETE|START|END", 
			"ListWidth": "135", 
			
         "ZoomType": "SelectGanttZoom", 
         "ZoomHtmlPrefix": "Zoom to <b>", "ZoomHtmlPostfix": "</b>", 
         "ZoomLeft": "5", 
         "ZoomWidth": "205", 
       
         "ExLabel": "<b>Holidays</b>", "ExWidth": "65", "ExLeft": "5", 
         "ExType": "Select", "ExOnClickSideDefaults": "Grid.ShowGanttCalendars(Row,Col)", 
         "ExFormula": "Grid.Cols.GANTT.GanttExclude", 
         "ExOnChange": "Grid.ChangeExclude(Value);", "ExUndo": "1", 
         "ExTip": "Global calendar for the whole project", 

         "HidExType": "Bool", "HidExNoColor": "1", "HidExLeft": "5", "HidExCanFocus": "0", 
         "HidExLabelRight": "Hide holidays", 
         "HidExFormula": "Grid.Cols.GANTT.GanttHideExclude", 
         "HidExOnChange": "Grid.SetHideExclude(Value)", 
         "HidExCanEditFormula": "gantthasexclude()!=0", 
         "HidTip": "Hides dates excluded by the global calendar", 

         "CalType": "Bool", "CalNoColor": "1", "CalLeft": "5", "CalCanFocus": "0", "CalCanEdit": "1", 
         "CalLabelRight": "Custom calendars", 
         "CalFormula": "Grid.Cols.GANTT.GanttCalendar", 
         "CalOnChange": "Grid.ChangeExclude(Value?\"CALENDAR\":\"\",\"GanttCalendar\"); if(Value) Grid.ShowCol(\"CALENDAR\"); else Grid.HideCol(\"CALENDAR\");", 
         "CalTip": "Permits custom calendars for individual tasks"  

          }, 

      // Defines the second top toolbar with Start date, Finish date, critical path and dependency violation checking 
      { "Kind":"Topbar2", "id": "Project", "Space": "0", "Panel": "0", "Cells": "Base,Finish,Crit,Dep,Sep,Rows", "Recalc": "-1", 
            
         "BaseType": "Date", "BaseCanEdit": "1", "BaseWidth": "120", "BaseUndo": "1", "BaseLeft": "5", 
         "BaseLabel": "Start", 
         "BaseFormat": "ddd M/d/yyyy, '<i>'HH'</i>'", 
         "BaseEditFormat": "M/d/yyyy HH", 
         "BaseFormula": "Grid.GetGanttBase()", 
         "BaseOnChange": "Grid.SetGanttBase(Value,2);", 
         "BaseHtmlPrefixFormula": "Grid.Cols.GANTT.GanttBase===\"\"?\"<s>\":\"\"", 
         "BaseHtmlPostfixFormula": "Grid.Cols.GANTT.GanttBase===\"\"?\"</s>\":\"\"", 
         "BaseTip": "Starting date of the whole project.<br>No task should start before it.<br>It is also used when correcting dependencies.", 
              
         "FinishType": "Date", "FinishCanEdit": "1", "FinishWidth": "120", "FinishUndo": "1", "FinishLeft": "5", 
         "FinishLabel": "Finish date", 
         "FinishFormat": "ddd M/d/yyyy, '<i>'HH'</i>&nbsp;'", 
         "FinishEditFormat": "M/d/yyyy HH", 
         "FinishFormula": "Grid.GetGanttFinish()", 
         "FinishOnChange": "Grid.SetGanttFinish(Value);", 
         "FinishHtmlPrefixFormula": "Grid.Cols.GANTT.GanttFinish===\"\"?\"<s>\":\"\"", 
         "FinishHtmlPostfixFormula": "Grid.Cols.GANTT.GanttFinish===\"\"?\"</s>\":\"\"", 
         "FinishTip": "Finish date of the whole project.<br>If grayed, it is calculated from the last task.<br>It is used to calculate critical path.", 

         "CritType": "Bool", "CritNoColor": "1", "CritCanEdit": "1", "CritLeft": "5", "CritCanFocus": "0", 
         "CritLabelRight": "Show <b>critical path</b> only", 
         "CritOnChange": "Grid.SetFilter(\"Crit\",Value?\"SLACK!=='' && SLACK<=Grid.Cols.GANTT.GanttMinSlack && COMPLETE!=100\":\"\")", 
              
         "DepType": "Select", 
         "DepDefaults": "|Ignore problems|Auto correct problems|Alert and confirm problems", 
         "DepFormula": "Grid.GetDefaultsValue(Row,Col,Grid.Cols.GANTT.GanttCorrectDependencies)", 
         "DepOnChange": "var v=Grid.GetDefaultsIndex(Row,Col,Value); Grid.Cols.GANTT.GanttCorrectDependencies=v; Grid.Cols.GANTT.GanttCheckExclude=v; Grid.SaveCfg();", 
         "DepTip": "If the dependent tasks will be updated after some task move or resize", 
         "DepWidth": "155", 
         "DepLeft": "5", 

         "SepType": "Html", "SepRelWidth": "1", "SepCanFocus": "0", 
         "RowsType": "Text", "RowsCanFocus": "0", "RowsWidth": "-1", "RowsFormula": "'Shown '+count('Row.Def.Group?0:1',4)+' / '+count('Row.Def.Group?0:1',5)+' parts in '+count('Row.Def.Group?1:0')+' tasks'"  
          }, 

      // Defines the first bottom toolbar with resources filters and charts 
      { "Kind":"Toolbar1", "id": "Resources", "Space": "4", "Cells": "Resources,Use,Avail,Free,Err,Empty,Dep", "Panel": "0", "Recalc": "-1", 
         "ResourcesType": "SelectGanttResources", 
         "ResourcesHtmlPrefix": "Show <b>", "ResourcesHtmlPostfix": "</b>", 
         "ResourcesEmptyValue": "all resources", 
         "ResourcesLeft": "5", 
         "ResourcesWidth": "180", 

         "UseType": "Bool", "UseNoColor": "1", "UseCanEdit": "1", "UseLeft": "5", "UseCanFocus": "0", 
         "UseLabelRight": "Used resources", "Use": "1", 
         "UseOnChange": ["",
            "Grid.Def.Resource.GANTTGanttAvailability = (Row.Avail?\",SECTION#3\":\"\") + (Row.Use?\",SECTION#1\":\"\") + (Row.Use&&Row.Avail?\",SECTION#8\":\"\") + (Row.Free?\",SECTION#5\":\"\") + (Row.Err?\",SECTION#6\":\"\");",
            "if(!Row.Avail&&!Row.Free&&!Row.Err) { ",
               "var F = Grid.GetRows(Grid.Foot); Grid.StartUpdate();",
               "for(var i=0;i<F.length;i++) if(Value) Grid.ShowRow(F[i]); else Grid.HideRow(F[i]); ",
               "Grid.EndUpdate();",
               "}",
            "else Grid.RefreshGantt();",
            ""], 
         "AvailType": "Bool", "AvailNoColor": "1", "AvailCanEdit": "1", "AvailLeft": "5", "AvailCanFocus": "0", 
         "AvailLabelRight": "Available resources", "Avail": "1", 
         "AvailOnChange": ["",
            "Grid.Def.Resource.GANTTGanttAvailability = (Row.Avail?\",SECTION#3\":\"\") + (Row.Use?\",SECTION#1\":\"\") + (Row.Use&&Row.Avail?\",SECTION#8\":\"\") + (Row.Free?\",SECTION#5\":\"\") + (Row.Err?\",SECTION#6\":\"\");",
            "if(!Row.Use&&!Row.Free&&!Row.Err) { ",
               "var F = Grid.GetRows(Grid.Foot); Grid.StartUpdate();",
               "for(var i=0;i<F.length;i++) if(Value) Grid.ShowRow(F[i]); else Grid.HideRow(F[i]); ",
               "Grid.EndUpdate();",
               "}",
            "else Grid.RefreshGantt();",
            ""], 
         "FreeType": "Bool", "FreeNoColor": "1", "FreeCanEdit": "1", "FreeLeft": "5", "FreeCanFocus": "0", 
         "FreeLabelRight": "Free resources", "Free": "0", 
         "FreeOnChange": ["",
            "Grid.Def.Resource.GANTTGanttAvailability = (Row.Avail?\",SECTION#3\":\"\") + (Row.Use?\",SECTION#1\":\"\") + (Row.Use&&Row.Avail?\",SECTION#8\":\"\") + (Row.Free?\",SECTION#5\":\"\") + (Row.Err?\",SECTION#6\":\"\");",
            "if(!Row.Use&&!Row.Avail&&!Row.Err) { ",
               "var F = Grid.GetRows(Grid.Foot); Grid.StartUpdate();",
               "for(var i=0;i<F.length;i++) if(Value) Grid.ShowRow(F[i]); else Grid.HideRow(F[i]); ",
               "Grid.EndUpdate();",
               "}",
            "else Grid.RefreshGantt();",
            ""], 
         "ErrType": "Bool", "ErrNoColor": "1", "ErrCanEdit": "1", "ErrCanFocus": "0", "ErrLeft": "5", 
         "ErrLabelRight": "Resources errors", "Err": "0", 
         "ErrOnChange": ["",
            "Grid.Def.Resource.GANTTGanttAvailability = (Row.Avail?\",SECTION#3\":\"\") + (Row.Use?\",SECTION#1\":\"\") + (Row.Use&&Row.Avail?\",SECTION#8\":\"\") + (Row.Free?\",SECTION#5\":\"\") + (Row.Err?\",SECTION#6\":\"\");",
            "if(!Row.Use&&!Row.Avail&&!Row.Free) { ",
               "var F = Grid.GetRows(Grid.Foot); Grid.StartUpdate();",
               "for(var i=0;i<F.length;i++) if(Value) Grid.ShowRow(F[i]); else Grid.HideRow(F[i]); ",
               "Grid.EndUpdate();",
               "}",
            "else Grid.RefreshGantt();",
            ""], 

         "EmptyRelWidth": "1", "EmptyType": "Html", "EmptyCanFocus": "0", 
         "DepFormula": "ganttdependencyerrors(null,1)", "DepOnClick": "CorrectAllDependencies", "DepTip": "Click to correct the dependencies"  
         
          }  

   ], 
   
   // Summary row for all tasks 
   "Foot" : [ 
      { "id": "-1", "Def": "Group", "TASK": "Summary", "SECTION": "Summary", "GANTTGanttEdit": "", "MenuName": "Summary"   }   
   ], 
   
   // Resources definition 
   "Resources" : [ 
      { "Name": "Mill", "Price": "20", "Type": "1", "Availability": "20"   }, 
      { "Name": "Drill", "Price": "25", "Type": "1", "Availability": "30"   }, 
      { "Name": "Weld", "Price": "40", "Type": "1", "Availability": "75"   }  
   ], 

   // Resources usage sub table 
   "Def_2" : [ 
      // Default row for resources 
      { "Name": "Resource", "idVisible": "0", "CanEdit": "0", "CanDelete": "", "CanSelect": "0", "Calculated": "1", 
         
         "GANTTGanttAvailability": "SECTION#3,SECTION#1,SECTION#8", "GGanttAvailabilityFormat": "0.#", 
         "GANTTGanttStart": "", "GANTTGanttEnd": "", "GANTTGanttEdit": "", "GANTTGanttComplete": "", "GANTTGanttAncestors": "", "GANTTGanttDescendants": "", 
         
         "TASJ": "Resource", 

         "STARTType": "Float", "STARTFormat": "0.00", "STARTEditMask": "^\\d*[\\d\\.\\,]?\\d*$", "STARTEditFormat": "", "STARTCanEdit": "1", 
         "STARTFormula": "Grid.Resources[Row.SECTION]?Grid.Resources[Row.SECTION].Price:0", 
         "STARTOnChange": "Grid.Resources[Row.SECTION].Price = Value; Grid.Calculate(1)", 

         "ENDType": "Text", "ENDFormat": "", "ENDCanEdit": "0", 
         "ENDFormula": "Grid.Resources[Row.SECTION]?Grid.Resources[Row.SECTION].Availability:0", 
         "ENDOnChange": "Grid.Resources[Row.SECTION].Availability = Value;", 
         "ENDButton": "Dates", 
         "ENDDatesRepeatType": "Enum", "ENDDatesRepeatEnum": "||Weekly|Daily", "ENDDatesRepeatEnumKeys": "||w|d", 
         "ENDDatesValueType": "Float", "ENDDatesValueFormat": "0.00", "ENDDatesValueCaption": "Count", 

         "DURATIONType": "Float", "DURATIONFormat": "0.##", "DURATIONFormula": "ganttresourcepeak(Row.SECTION)", 

         "COMPLETEType": "Enum", "COMPLETEEnum": "|wrk|mat", "COMPLETEEnumKeys": "|1|2", "COMPLETECanEdit": "1", 
         "COMPLETEFormula": "Grid.Resources[Row.SECTION] ? Grid.Resources[Row.SECTION].Type : 1", 
         "COMPLETEOnChange": "Grid.Resources[Row.SECTION].Type = Value; Grid.Calculate(1)", 

         "DESCENDANTSType": "Float", "DESCENDANTSFormat": "0.00", "DESCENDANTSFormula": "ganttresourceunits(Row.SECTION)", 

         "ANCESTORSType": "Float", "ANCESTORSFormat": "0.00", "ANCESTORSFormula": "DESCENDANTS*START", 
         
         "PRICEVisible": "0", "CALENDARVisible": "-1"  
          }   
   ], 
   "Foot_2" : [ 
      { "Kind":"Header", "id": "-2", "idVisible": "0", "SortIcons": "0", "CanPrint": "1", "MenuName": "Resources", 
              "TASK": "Type", "SECTION": "Resource", "GANTT": "Resources usage", "GANTTOnClick": "ZoomIn", "GANTTNoColor": "0", 
              "START": "Unit price", "END": "Availability", "DURATION": "Peak", "COMPLETE": "Type", "DESCENDANTS": "Total", "ANCESTORS": "Price", 
              "MINSTART": "", "MAXSTART": "", "MINEND": "", "MAXEND": "", "TEXT": "", "CALENDAR": "", "PARTS1": "", "TEXT1": "", "RESOURCES": "", "PRICE": "", "FLAGS": "", "FLAGSTEXT": "", "SLACK": ""  
               },  // Header of sub table with column captions 
      { "id": "-3", "Def": "Resource", "SECTION": "Mill", "MenuName": "Mill"   }, 
      { "id": "-4", "Def": "Resource", "SECTION": "Drill", "MenuName": "Drill"   }, 
      { "id": "-5", "Def": "Resource", "SECTION": "Weld", "MenuName": "Weld"   }  
   ], 
   // End of resources usage sub table 
 
   "Lang" : { 
      // Colors the separators to be better visible, there must be also set Cfg NoFormatEscape for it 
      "Format" : { 
         "ValueSeparatorHtml": "<em>; </em>", 
         "RangeSeparatorHtml": "<em> ~ </em>"  
          }  
   }, 

   "Pager" : { "MinWidth": "60", "Width": "95"   },  // Width of the right side pager 
   "Toolbar" : { "Indent": "0", "Outdent": "0"   },  // Hides the buttons, because the tree has fixed structure 

   "Media" : [ 
      // Change for narrow screens 
      { "MaxHeight": "600", "Tag": "2", 
         "Cfg" : { "Size": "Small"   }, 
         "Cols" : [ 
            { "Name": "GANTT", "GanttTop1": "6", "GanttHeight1": "1"   }    // Vertical position and height of the second main bar plan 
         ], 
      }, 
      { "Size": "Small,Mini,Tiny",  "Cols" : [  { "Name": "GANTT", "GanttTop1": "6", "GanttHeight1": "1"   }   ],  },  // Vertical position and height of the second main bar plan 
      { "Size": "Wide",  "Cols" : [  { "Name": "GANTT", "GanttTop1": "10", "GanttHeight1": "4"   }   ],  },  // Vertical position and height of the second main bar plan 
      { "Size": "High",  "Cols" : [  { "Name": "GANTT", "GanttTop1": "15", "GanttHeight1": "3"   }   ],  },  // Vertical position and height of the second main bar plan 
      { "Size": "Big",   "Cols" : [  { "Name": "GANTT", "GanttTop1": "19", "GanttHeight1": "3"   }   ],  },  // Vertical position and height of the second main bar plan 
      { "Size": "Giant", "Cols" : [  { "Name": "GANTT", "GanttTop1": "17", "GanttHeight1": "3"   }   ],  },  // Vertical position and height of the second main bar plan 
   ], 
}) /* End of JSONP header */ 